Method, system and computer program to enable querying of resources in a certain context by definition of SIP even package

ABSTRACT

Disclosed is a system and a method to provide event notification. The method operates an event server ( 20 ) with a subscriber unit ( 12 ). The method includes formulating a query; sending a subscription request message to the event server, the subscription request message comprising the query; responsive to a receipt of the subscription request message, parsing the query; and accepting the subscription request if the query is successfully parsed and understood, and if appropriate resource data is available to the event server to determine a result of the query.

CROSS-REFERENCE TO RELATED PATENT APPLICATIONS

This patent application is related to the following commonly assigned U.S. Patent Applications: D. Trossen, “Integration of Service Registration and Discovery in SIP Environments”, Ser. No. 10/179,244, filed Jun. 26, 2002; D. Trossen, “Content and Service Registration, Query, and Notification using SIP Event Packages”, Ser. No. 10/330,146, filed Dec. 30, 2002; D. Trossen, K. Mehta, “Access Control Alert Method using SIP Event Package”, Ser. No. 10/353,014, filed Jan. 29, 2003; D. Trossen, “Querying for SIP Event Packages by Using SIP OPTIONS Method or by Using Service Discovery”, Ser. No. 10/418,313, filed Apr. 18, 2003; and to D. Trossen, D. Pavel, “Application Semantic Binding through SIP Event Package Template”, Ser. No. 10/465,455, filed Jun. 19, 2003, the disclosures of which are incorporated by reference in their entireties.

TECHNICAL FIELD

This invention relates generally to wireless communications systems and methods and, more specifically, relates to wireless terminals and wireless network nodes that use a Session Initiation Protocol (SIP).

BACKGROUND

The infrastructure of the Session Initiation Protocol (SIP) is defined in IETF RFC3261 (Rosenberg et al., June 2002). In general, the SIP is an application-layer control (signaling) protocol for creating, modifying and terminating sessions with one or more participants. The sessions can include Internet telephone calls, multimedia distribution and multimedia conferences. SIP invitations used to create sessions carry session descriptions that allow participants to agree on a set of compatible media types. SIP makes use of elements called proxy servers to help route requests to the user's current location, authenticate and authorize users for services, implement provider call-routing policies and provide features to users. SIP also provides a registration function that allows users to upload their current locations for use by proxy servers. SIP runs on top of several different transport protocols.

In “SIP-Specific Event Notification”, A. Roach, RFC 3265, July 2002 (referred to hereafter simply as RFC 3265), there is described a SIP event framework to enable event-based information provisioning to any node in the Internet. This procedure is expected to become a key element within the SIP infrastructure. Examples of this kind of information are presence, location information, content/service availability, or access-controlled SIP events, as described in several of the above-referenced related patent applications.

As is discussed in RFC 3265, the general concept is that entities in the network can subscribe to resource or call state for various resources or calls in the network, and those entities (or entities acting on their behalf) can send notifications when those states change. A typical flow of messages would be:

Subscriber Notifier |-----SUBSCRIBE---->| Request state subscription |<-------200--------------| Acknowledge subscription |<------NOTIFY---------| Return current state information |--------200------------->| Acknowledge |<------NOTIFY--------| Return current state information |--------200------------->| Acknowledge

Subscriptions are expired and must be refreshed by subsequent SUBSCRIBE messages.

Several useful definitions include the following:

Event Package: An event package is an additional specification which defines a set of state information to be reported by a notifier to a subscriber. Event packages also define further syntax and semantics based on the framework defined by RFC 3265 that are required to convey such state information.

Event Template-Package: An event template-package is a special kind of event package which defines a set of states which may be applied to all possible event packages, including itself.

Notification: Notification is the act of a notifier sending a NOTIFY message to a subscriber to inform the subscriber of the state of a resource.

Notifier: A notifier is a user agent which generates NOTIFY requests for the purpose of notifying subscribers of the state of a resource. Notifiers typically also accept SUBSCRIBE requests to create subscriptions.

State Agent: A state agent is a notifier which publishes state information on behalf of a resource; in order to do so, it may need to gather such state information from multiple sources. State agents always have complete state information for the resource for which they are creating notifications.

Subscriber: A subscriber is a user agent which receives NOTIFY requests from notifiers; these NOTIFY requests contain information about the state of a resource in which the subscriber is interested. Subscribers typically also generate SUBSCRIBE requests and send them to notifiers to create subscriptions.

Subscription: A subscription is a set of application state associated with a dialog. This application state includes a pointer to the associated dialog, the event package name, and possibly an identification token. Event packages will define additional subscription state information. By definition, subscriptions exist in both a subscriber and a notifier.

Subscription Migration: Subscription migration is the act of moving a subscription from one notifier to another notifier.

The SUBSCRIBE method is used to request current state and state updates from a remote node.

J. Rosenberg has defined in “A Watcher Information Event Template-Package for the Session Initiation Protocol (SIP)”, draft-ietf-simple-winfo-package-05.txt, Jan. 31, 2003, a watcher information template-package for the SIP event framework. Watcher information in this context refers to a set of users that are subscribed to a particular resource within a particular event package. Watcher information changes dynamically as users subscribe, unsubscribe, are approved, or are rejected. A user can subscribe to this information, and therefore can learn of changes to this information. This particular event package is referred to as a template-package, as it can be applied to any event package, including itself.

The SIP event framework as presented in RFC 3265, is a technique to provide context information in general. For example, the SIP presence provides a particular piece of context information, using a particular SIP event package. However, current subscription solutions for SIP events, such as for SIP presence, watcherinfo, and even call-state information, only allow for subscription to state information that is associated with a particular resource, where the particular resource is addressed as a SIP URI. For example, a subscription to a presence event is bound to a so-called presentity, representing the user to which the presence information is associated. Hence, when subscribing to state information, the subscriber subscribe to state information of a particular, a priori known resource (addressed through the SIP URI). At present, it is not possible to subscribe to state information that has been derived from a set of state information associated to certain URIs.

Based on the foregoing, it may be appreciated that with the current subscription model of SIP questions (queries) such as:

“Which persons (resources) are in a meeting, the meeting being in a particular location?” and

“Which persons (resources) are at work right now, with work location Boston, and are not busy?”

can only be answered by subscribing to all available and relevant resources at a particular SIP event server, and upon reception of notifications that are related to the required state information, by executing an appropriate application logic at the subscriber in order to determine the set of resources that would fulfil the given constraints. This is necessary since as currently defined SIP event subscriptions are bound to particular resources, e.g., a subscription to a SIP presence event is bound to the presentity.

It can be readily seen that such a solution is not scalable if one were to assume, by example, a fairly large domain such as a mobile operator, since such a solution could easily overburden the subscriber with respect to maintaining the subscriptions and handling incoming notifications, as well as the SIP event server with respect to creating such large numbers of subscriptions. Such a solution could also easily fail, for example by leaving out certain domains that are hosted at the particular SIP event server but that are unknown to the subscriber.

That is, the subscriber might “miss” certain resources by simply not knowing or not being aware of the relevance of the particular resource for the answer to the query. For example, a particular SIP event server may host event information for resources in two different domains, “domain1.com” and “domain2.com”. Assume in this case that the subscriber is aware of the hosting of the first domain but not of the second domain. Hence, the subscriber would not subscribe to the relevant resources of the second domain and could therefore potentially “miss” important information.

Assuming the hosting of particular state information at a SIP event server for a multiplicity of resources at a certain time, it would be desirable to have a way to formulate the exemplary SIP queries given above within a single subscription, with the queries operating on an available set of information within the SIP event server. For example, since usually there exists presence information for a large set of presentities at a SIP presence server, it would be desirable to perform queries such as those above on the set of presentities within a single subscription. Prior to this invention, these needs were unfulfilled.

SUMMARY OF THE PREFERRED EMBODIMENTS

The foregoing and other problems are overcome, and other advantages are realized, in accordance with the presently preferred embodiments of these teachings.

In one aspect this invention provides a method to operate an event server with a subscriber unit. The method includes formulating a query; sending a subscription request message to the event server, the subscription request message comprising the query; responsive to a receipt of the subscription request message, parsing the query; and accepting the subscription request if the query is successfully parsed and understood, and if appropriate resource data is available to the event server to determine a result of the query.

In another aspect this invention provides an event notification system that includes a data communications network, at least one event server coupled to the data communications network, and at least one subscriber coupled to the data communications network. The subscriber is operable to formulate a query and to send a subscription request message to the event server, where the subscription request message includes query semantics. The event server is responsive to a receipt of the subscription request message to parse the query semantics to determine whether to accept or reject the subscription request. The subscription request is accepted if the query semantics are successfully parsed and understood, and appropriate resource data is available to the event server to determine a result of the query.

In another aspect this invention provides an event server having an interface for coupling to a data communications network and a control logic that is responsive to the receipt of a subscription request query message from a subscriber to subscribe to resource_query events. The query message contains query semantics, and the event server includes logic to parse the query semantics to determine whether to accept or reject the subscription request, where the subscription request is accepted if the query semantics are successfully parsed and understood, and appropriate resource data is available at least one of locally and remotely to the event server to determine a result of the query.

In a further aspect thereof this invention provides a subscriber unit, such as a wireless mobile communications device or terminal, that has an interface for coupling to a data communications network and a control logic for generating a resource_query event package having a body portion that contains a query that operates on resource data at an event server.

In the preferred embodiment the event server comprises a Session Initiation Protocol (SIP) event server, and the resource data is comprised of, as non-limiting examples, at least some of presence data, watcherinfo, call state and application-specific events.

BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing and other aspects of these teachings are made more evident in the following Detailed Description of the Preferred Embodiments, when read in conjunction with the attached Drawing Figures, wherein:

FIG. 1 shows the overall architecture and major logical entities of the present invention;

FIG. 2 illustrates various process steps and messages in accordance with the invention; and

FIG. 3 shows a block diagram of the SIP event server of FIG. 1.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

The present invention solves the foregoing and other problems by introducing an improved SIP event package that allows for subscribing to complex queries within a single dialog. The actual query is part of the subscription, and in response the SIP event server executes the required application logic for determining the appropriate resource list to satisfy and respond to the query. The use of this invention removes the burden from the subscriber and performs the matching functionality at the location where the relevant data resides, namely at the SIP event server itself. The invention also supports the use of arbitrary semantics for such queries, supports ontologies for semantic re-use, and integrates access control approaches, such as the XML-based Configuration Access Protocol, see J. Rosenberg, “The Extensible Markup Language (XML) Configuration Access Protocol (XCAP)”, Internet Draft, Internet Engineering Task Force, (work in progress), May 2003), referred to hereafter as XCAP.

Referring to FIG. 1 there is shown a simplified architectural diagram of a system 10 that is suitable for practicing this invention. The system 10 includes a subscriber 12, local SIP proxies 14, 16, a network such as an Internet Protocol (IP) network 18, a SIP event server 20, an (optional) ontology server 22 and an authorization policy manager 24.

The SIP event server 20 implements SIP events and is assumed for convenience to be compliant with the procedures of “SIP-Specific Event Notification”, A. Roach, RFC 3265, July 2002. It is assumed that the SIP event server 20 is a candidate for subscription for the abovementioned potential subscriber 12.

The SIP proxy 14 and the SIP proxy 16 are responsible for the handling of SIP messages and appropriately forwarding them to the specified entity. Note that the SIP proxies 14, 16 represent an exemplary embodiment of an entity that provides forwarding of registration/subscription/notification, as provided by the SIP event framework of RFC 3265. Other mechanisms could be used as well as an embodiment of the present invention. However, in the following description the SIP event servers 14 and 16 are referred to, without restricting the general nature of the present invention.

The ontology server 22 allows for registering and the querying of ontologies. For the purposes of this invention ontologies can be considered to capture the semantics of information from various sources and to give them a concise, uniform and declarative description (see, for example, Y. Ding, D. Fensel, “Ontology Library Systems: The key to successful Ontology Re use”, August 2001).

In the presently preferred, but non-limiting embodiment of this invention the subscriber 12 is associated with a mobile wireless telecommunications device, such as a cellular telephone, or a personal communicator, or a mobile user or agent such as a computer that is coupled to the network 18 via a wireless link. The network 18 can comprise the Internet.

It is assumed in the presently preferred embodiment of this invention that both the subscriber 12, also referred to as a subscriber unit, and the event server 20 include an interface to the network 18, and suitably programmed control logic 12A and 20A-20F (see FIG. 3), respectively, for implementing this invention.

The present invention implements a method to enable queries for SIP event data such as:

“Which persons (resources) are in a meeting, the meeting being in a particular location?”, and

“Which persons (resources) are at work right now, with work location Boston, and are not busy?”

As was noted above, conventional SIP event subscriptions are bound to SIP URIs, associated with a priori known resources. The foregoing two exemplary queries, however, aim at determining a priori unknown SIP URIs that fulfil certain constraints. The set of URIs can be determined, for example, through appropriate aggregations and fusions of existing state information, associated to particular URIs, at the SIP event server 20, such as by derivation from existing presence information.

To support such queries, the present invention defines an appropriate SIP event package with a single event that is referred to herein for convenience, and not by way of limitation, as a resource_query. A subscriber 12 who wishes to initiate a query, such as one formulated above, subscribes to the SIP event of the resource_query SIP event package. The subscription body contains the actual query in an appropriate language. If the SIP event server 20 supports the event package of the subscription, and is able to parse the query successfully (this includes the ability to obtain the appropriate resource information necessary to respond to the query), the subscription dialog is established.

The SIP event server 20 includes an appropriate functionality to monitor all relevant resources for the particular query. Upon state changes for the relevant resources, the SIP event server 20 determines the list of resources that fulfils the query of the subscription. If the new resource list differs from the previous resource list the SIP event server 20 sends an appropriate notification to the subscriber 12, such as a notification that informs the subscriber 12 of the new resource(s) or of the removal of resource(s) from the previous list. For this purpose either full notifications (i.e., the full list of resources) or partial notifications can be used. Hence, the SIP event server 20 offers to the subscriber 12 a functionality that allows the latter to maintain the current list of resources that fulfill the desired query. The subscriber 12 includes logic that is responsive to the notification to take some action, such as displaying the changed resource list to a user thereby providing the user with the opportunity to determine if the resource change(s) are acceptable so as to continue with or cancel the current SIP event package subscription.

The present invention provides support for query semantic re-usage through ontologies by using content indirection methods for the subscription body, and further supports access control by integrating access control in the resource list determination process. IETF draft “draft-ietf-sip-content-indirect-mech-03”, entitled “A Mechanism for Content Indirection in Session Initiation Protocol (SIP) Messages” (S. Olson, Jun. 2, 2003), describes a conventional mechanism to provide for content indirection in SIP messages. Reference can also be made to S. Olson, “Requirements for Content Indirection in Session Initiation Protocol”, IETF Draft, September 2002.

In accordance with this invention, assume that the subscriber 12 desires to subscribe to resource_query events, as described below, according to a particular semantic for the query. The SIP event server 20 is assumed to implement particular SIP events, and is further assumed to be compliant with RFC 3265 (although compliance with RFC 3265 is not to be construed as a limitation upon the implementation and practice of this invention).

Referring to FIG. 3, in order to implement the present invention the SIP event server 20 further includes, apart from logic 20A providing functionality compliant with RFC 3265, and a network interface 20B, logic 20C providing support for a content indirection method, or some other method for retrieving data from the ontology server 22, for the case where one or more ontology servers are used to specify the query semantic. The SIP event server 20 further includes logic 20D to interpret the query semantic that is provided to the SIP event server through a resource_query event package subscription, as described below, so as to determine a resource list that will satisfy the query semantic, and also whether the SIP application server 20 is capable of supporting the required resource list. The logic 20D is shown as being coupled to local source of resource data 21. The SIP event server 20 further includes logic 20E to implement the desired query semantic that was provided to the SIP event server 20 through the resource_query event package subscription. Such an implementation preferably operates on the resource data 21 that resides locally on the SIP event server 20. However, it is also possible that such resource data is obtained in whole or in part from an external source, as discussed below with regard to the event package description. The SIP event server 20 preferably further includes logic 20F to support authorization policies to preserve the privacy of the resource data, for example in accordance with XCAP. However, this particular functionality is not required, and may be viewed as being optional. The authorization policy manager 24 allows for the definition of authorization policies for particular resource data, and may follow, as an example, the Rosenberg procedure as it pertains to communication between users of such policies, e.g., the SIP event server 20 and a so-called XCAP server (representing the Authorization Policy Manager 24 as shown in FIG. 1).

Discussed now is the event package definition that was referred to above. This invention defines a SIP event package with a single event, that is referred to as a “resource_query” in the remainder of this description. The semantics of the event package are as follows.

The SIP event package includes a subscription body that contains a query that operates on resource data (assumed to be available at or through the SIP event server 20) in the sense that it subscribes to the (possibly changing) list of resources that would fulfil the constraints defined in the query.

The query is formulated using a suitable query language. The exact syntax and semantics of the query language are outside the scope of the invention. However, notations such as Resource Description Format (RDF) or Extended Markup Language (XML) are suitable for use in formulating such queries. In order to share such query semantic information among a larger set of users, i.e., to create a common knowledge of semantics, the notion of the use of the ontology server(s) 22 is supported by the invention in the query subscription operation, as discussed below.

The resource data is assumed to be available at the SIP event server 20. This resource data can include the state associated with other SIP events that are hosted at the SIP event server 20. Non-limiting examples of such resource data can include the following.

A) Presence data, which includes all data defined in so-called presence documents, such as formulated in PIDF (presence information data format) or RPID (rich presence information data format).

B) Watcherinfo, which this includes data of subscribers to presence information or other SIP events.

C) Call state, which includes call state data.

D) Application-specific SIP events, which include resource data described through application-specific semantics, such as those enabled by the commonly assigned U.S. Patent Application of D. Trossen and D. Pavel, “Application Semantic Binding through SIP Event Package Template”, Ser. No. 10/465,455, filed Jun. 19, 2003.

The resources are typically expressed as SIP URIs, where the presentity constitutes the resource while the associated presence document constitutes the resource data for the resource, i.e., the presentity.

All or part of the resource data may be available internally (such as through hosting appropriate SIP events that relate to the particular resource data,) or all or part of the data can be obtained externally.

For the former, the resource data that is used which is directly provided through the event packages that are implemented at the SIP event server 20. For instance, if the SIP event server 20 functions as a SIP presence server, the resource_query subscription could operate on the presence data as input.

For the latter, i.e., externally obtained resource data, the SIP event server 20 can perform appropriate data provisioning requests, such as SIP event subscriptions, to other network entities. For the sake of simplicity, it will be assumed in the following discussion that the resource data exists locally at the SIP event server 20 as the local resource data 21. However, obtaining the resource data externally is also within the scope of this invention.

For all or part of the resource data there may exist appropriate authorization policies that define the access rights to the particular resource data. As shown in FIG. 1, it is assumed that such authorization policies can be made available to the SIP event server 20 through the use of the optional authorization policy manager 24. If such authorization policies exist, it is assumed that the SIP event server 20 takes these into account when determining the list of resources that fulfil the constraints formulated in the query of the subscription.

The SIP event server 20 returns a ‘200 OK’ return code to the subscriber 12, compliant with RFC 3265, if:

the semantics of the query have been fully understood; and

appropriate resource data, required to determine the result of the query, is or can be made available to the SIP event server 20 (either locally or externally);

otherwise, the SIP event server 20 returns an error code to the subscriber 12 compliant with RFC 3265. Typical reasons for returning the error code can include non-support for the resource_query event package, reasons related to the semantics of the query (e.g., non-availability of required resources, complexity of the query), or internal reasons (e.g., the complexity of the query would overburden the SIP event server 20).

It is preferred that the SIP event server 20 sends a notification to the subscriber 12, compliant to RFC 3265, once the list of resources, which fulfilled the constraint formulated in the original query of the subscription, changes. Such a change can either be the removal of one or more resources, the insertion of one or more resources, or a combination of both. The body of the notification contains the revised resource list, formulated in an appropriate syntax, such as in an appropriate RDF-based or XML-based format for sending the resource list and resource list change. Compliant to RFC 3265 and to M. Linnfors, “Partial Notification of Presence Information”, Internet Draft, Internet Engineering Task Force, (work in progress), January 2004, the resource list can be conveyed either as a full state or a partial state, i.e., the notification either contains the full list of resources that fulfils the query of the subscription or it contains a delta refresh list (only the changes) in an appropriate format.

FIG. 2 shows the steps and messages that are implemented for obtaining the subscription to the resource_query event.

Compliant with RFC 3265, the subscriber 12 sends a SIP SUBSCRIBE (message 1 in FIG. 2) to the SIP event server 20 (routed as message 2 and 3 in FIG. 2 via the SIP proxies 14 and 16 to the SIP event server 20). The SUBSCRIBE message header includes the resource_query event identifier. It further includes in the message body the semantics of the query, as discussed above in the description of the resource_query event package.

Upon receipt of the subscription message (message 3 in FIG. 2), the SIP event server 20 extracts the message body and parses the included semantic information of the query. For supporting ontology servers 22 (for re-using and sharing semantic definition among several subscribers), the message body may include links to such ontologies. Content indirection methods, such as the one described by S. Olson, “Requirements for Content Indirection in Session Initiation Protocol”, IETF Draft, September 2002, are used to retrieve the semantic information from the specified (ontology) server 22 (shown as messages 4 and 5 in FIG. 2). The retrieved information is then parsed by the SIP event server 20 as if given directly in the message body. During the parsing of the semantics of the query, the SIP event server 20 also verifies the existence of access rights for resource data that has been specified in the query of the subscription. Although the specifics of the particular authorization framework are outside the scope of the invention, methods such as XCAP provide a means to obtain such authorization policies from (typically external) XCAP servers. This is shown as messages 6 and 7 in FIG. 2. Such retrieval of authorization policies may occur several times throughout the parsing of the query.

As stated above, the SIP event server 20 confirms the subscription message accordingly. If the subscription can be granted, the SIP event server 20 sends back a ‘200 OK’ (message 8 in FIG. 2), routed as messages 9 and 10 to the subscriber 12. If the subscription cannot be granted the SIP event server 20 sends back an appropriate error code, compliant with RFC 3265, (message 8 in FIG. 2), routed as messages 9 and 10 to the subscriber 12.

If the subscription has been granted, the SIP event server 20 installs and executes an appropriate application logic that determines the resource list that fulfils the constraints in the query of the subscription. The resource list application logic operates based on the semantics given in the original query, and uses the appropriate resource data, obtained either locally or externally, throughout this determination. In practical terms, the resource list application logic is responsible for answering questions posed by the resource_query subscription by determining the appropriate resource list throughout the lifetime of the resource_query subscription. Such functionality may be implemented locally within the SIP event server 20, and was referred to above as the application logic 20D that is shown in FIG. 3.

Compliant with RFC 3265 the SIP event server 20 sends an initial SIP NOTIFY to the subscriber 12 (message 13 in FIG. 2, routed as messages 14 and 15 to the subscriber 12), representing the start state of the subscription. For this purpose the application logic 20D determines the initial set of resources that fulfill the query of the subscription. Note that throughout this determination, it may be desirable to determine the appropriate authorization policies for the subscriber 12 with respect to the considered resource data. For this purpose the appropriate authorization policies are obtained from the authorization policy manager 24, shown as messages 11 and 12 in FIG. 2.

If, throughout the lifetime of the subscription, the abovementioned application logic 20D determines a change of the resource list that fulfils the query of the subscription, it generates appropriate notifications to the subscriber 12. Note that for this determination to occur it may be desirable to determine the appropriate authorization policies for the subscriber 12 with respect to the considered resource data. For this purpose the appropriate authorization policies are obtained from the authorization policy manager 24, shown as messages 16 and 17 in FIG. 2.

Compliant to RFC 3265 and to M. Linnfors, “Partial Notification of Presence Information”, Internet Draft, Internet Engineering Task Force, (work in progress), January 2004, the SIP event server 20 may generate full state or delta state notifications to the subscriber 12, sent as message 18 in FIG. 2, routed as messages 19 and 20 in FIG. 2. Hence, the subscriber 12 receives an updated list of resources that fulfills the initial query of the subscription.

Based on the information in the resource list, the subscriber 12 may choose to implement a particular service, such as a context-aware service (the query constraints constituting the context for which the service is executed). In this regard the queried resource URIs constitute the URIs in a certain context.

As can be appreciated based on the foregoing discussion, one important advantage that is gained by the use of this invention is the enablement of complex queries in a SIP-based environment. Such a query can be realized within a single subscription dialog. The present invention thus dramatically improves the scalability of solutions that would provide answers to such queries, such as the exemplary queries presented above that require simultaneous knowledge of several resources, such as persons, times, locations and activities or states. The use of this invention thus reduces the burden on the subscriber 12, by resolving the multi-faceted query into a single subscription dialog.

Another advantage of this invention is that it further enables semantic re-use through ontology support. Additionally, the invention may employ access right considerations, such as one based on the conventional XCAP method, in the determination of the query answer. That is, this invention preserves the integrity of current and future privacy frameworks for SIP events.

Another advantage of this invention is the control of complexity at the SIP event server 20. Although the queries for resource lists can easily become fairly complex, it is the function of the SIP event server 20 to determine whether a particular subscription is granted. Hence, if the additional subscription dialog would overburden the SIP event server 20 due to its complexity, the subscription can simply be rejected (even though the SIP event server 20 is technically capable of supporting the requested subscription). This allows for a simple technique to control the scalability of the SIP event server 20 with respect to the supported complexity and the number of supported resource_query subscriptions.

To support this functionality the SIP event server 20 is enhanced relative to conventional servers to provide additional query parsing and data mining or analysis functionality. Note that the data mining/analysis functionality occurs on a set of existing data, as there is no additional data that is required to be gathered from other supported event packages in the SIP event server 20. If one or both of the query parsing and data mining/analysis functionalities are not supported by the SIP event server 20, the SIP event server 20 can simply reject the resource_query event package. Hence, this invention provides a modular, scalable and expandable solution, that simplifies the deployment of such query support in a network of SIP event servers 20.

Based on the foregoing description, it can be appreciated that this invention provides a system and a method in which queries are used to determine a set of resources being in a particular state. The state, for example, can relate to particular context information, such as current location, activity, certain preferences, or affective state. Together with a high-level semantic description of events, such as enabled by the system and method enabled by the commonly assigned U.S. Patent Application of D. Trossen and D. Pavel, “Application Semantic Binding through SIP Event Package Template”, Ser. No. 10/465,455, filed Jun. 19, 2003, the use of this invention permits answering questions such as:

“Which persons (resources) are in a meeting, the meeting being in a particular location?”; and

“Which persons (resources) are at work right now, with work location Boston, and are not busy?”

The answer to these questions is a list of resources, satisfying formulated constraints. The determined list of resources can then be used to provide certain context-aware services to these resources. For example, one could send certain messages to resources, e.g., SIP entities, which are in a particular state, i.e., in a particular context.

It can thus be appreciated that in one aspect thereof this invention provides a SIP event framework that permits formulating questions or queries for an event package within a single subscription. This invention defines a proper SIP event package and the method of subscription, supports arbitrary semantic descriptions for the query and also allows for integrating ontology-based semantics by using re-direction methods for the query language. Another aspect of this invention provides support for appropriate access and privacy rights when obtaining the resource information.

The foregoing description has provided by way of exemplary and non-limiting examples a full and informative description of the best method and apparatus presently contemplated by the inventors for carrying out the invention. However, various modifications and adaptations may become apparent to those skilled in the relevant arts in view of the foregoing description, when read in conjunction with the accompanying drawings and the appended claims. As but some examples, the use of other similar or equivalent message type and formats, resources and network architectures, may be attempted by those skilled in the art. However, all such and similar modifications of the teachings of this invention will still fall within the scope of this invention.

Furthermore, some of the features of the present invention could be used to advantage without the corresponding use of other features. As such, the foregoing description should be considered as merely illustrative of the principles of the present invention, and not in limitation thereof. 

What is claimed is:
 1. A method, comprising: receiving a session initiation protocol subscribe message at a session initiation protocol event server from a user device, the session initiation protocol subscribe message being for a subscription to an event package comprised of a single event, where the session initiation protocol subscribe message comprises a message header specifying a resource query event identifier and a message body that comprises a resource query formulated in a query language, the resource query operating on resource data available at at least one of the session initiation protocol event server and through the session initiation protocol event server; determining if the subscription can be granted by parsing semantic information contained in the message body of the session initiation protocol subscribe message and, based on the parsed semantic information, determining using at least an aggregation of existing resource state information a list of resources that are a priori unknown at the user device and that fulfill constraints of the resource query during a lifetime of the subscription, where the list of resources that are a priori unknown at the user device comprises a plurality of resources; sending the determined list of resources that fulfill constraints of the resource query to the user device as a start state of the subscription; and during the lifetime of the subscription sending a notification to the user device in response to a change occurring in the determined list of resources.
 2. The method as in claim 1, where it is determined that the subscription cannot be granted if the semantic information cannot be successfully parsed, if appropriate resource information cannot be obtained to respond to the resource query, or if the session initiation protocol event server cannot support the event package.
 3. The method as in claim 1, where determining the list of resources is performed at the session initiation protocol event server in cooperation with an authorization policy management function to verify existence of access rights for the user terminal to the determined resources.
 4. The method as in claim 1, where parsing is performed at the session initiation protocol event server in cooperation with an ontology server.
 5. The method as in claim 1, where the message body comprises at least one link to an ontology server to be used when parsing the semantic information.
 6. The method as in claim 1, where parsing is performed at the session initiation protocol event server using a content indirection technique.
 7. The method as in claim 1, where determining if the subscription can be granted comprises consulting at least one of a local source of resource data and a remote source of resource data and determining if appropriate resource data is available to grant the subscription.
 8. The method as in claim 1, where the notification comprises a complete list of the resources including a resource or resources that have changed.
 9. The method as in claim 1, where the notification comprises a partial list of the resources containing only the resource or resources that have changed.
 10. The method as in claim 1, where the user device is embodied as a mobile wireless telecommunications device.
 11. The method as in claim 1, where resource data is comprised of at least some of presence data, watcherinfo, call state and application-specific events.
 12. A method, comprising: sending a session initiation protocol subscribe message to a session initiation protocol (SIP) event server from a user device, the session initiation protocol subscribe message comprising a resource query being for a subscription to an event package comprised of a single event and comprising information for enabling the session initiation protocol event server to determine a list of resources that are a priori unknown at the user device that fulfill constraints of the resource query during a lifetime of the subscription, where the list of resources comprises a plurality of resources, where the session initiation protocol subscribe message comprises a message header specifying a resource query event identifier and a message body that comprises the resource query formulated in a query language, the resource query operating on resource data available at at least one of the session initiation protocol event server and through the session initiation protocol event server; receiving the determined list of resources that fulfill constraints of the resource query at the user device as a start state of the subscription; and during the lifetime of the subscription, receiving a notification at the user device in response to a change occurring in the determined list of resources.
 13. The method as in claim 12, where the message body comprises at least one link to an ontology server to be used when parsing the semantic information.
 14. The method as in claim 12, where the notification comprises one of a complete list of the resources including a resource or resources that have changed or a partial list of the resources containing only the resource or resources that have changed.
 15. The method as in claim 12, where the user device is embodied as a mobile wireless telecommunications device.
 16. An apparatus comprising: at least one processor; and at least one memory including computer program code, the at least one memory and the computer program code configured to, with the at least one processor, cause the apparatus to receive a session initiation protocol subscribe message at a session initiation protocol event server from a user device, the session initiation protocol subscribe message being for a subscription to an event package comprised of a single event, where the session initiation protocol subscribe message comprises a message header specifying a resource query event identifier and a message body that comprises a resource query formulated in a query language, the resource query operating on resource data available at at least one of the session initiation protocol event server and through the session initiation protocol event server; determine if the subscription can be granted by parsing semantic information contained in the message body of the session initiation protocol subscribe message and, based on the parsed semantic information, determining using at least an aggregation of existing resource state information a list of resources that are a priori unknown at the user device and that fulfill constraints of the resource query during a lifetime of the subscription, where the list of resources are a priori unknown at the user device comprises a plurality of resources; sending the determined list of resources that fulfill constraints of the resource query to the user device as a start state of the subscription; and during the lifetime of the subscription, to send a notification to the user device in response to a change occurring in the determined list of resources.
 17. The apparatus as in claim 16, where it is determined that the subscription cannot be granted if the semantic information cannot be successfully parsed, if appropriate resource information cannot be obtained to respond to the resource query, or if the session initiation protocol event server cannot support the event package.
 18. The apparatus as in claim 16, where determining the list of resources is performed at the session initiation protocol event server in cooperation with an authorization policy management function to verify existence of access rights for the user terminal to the determined resources.
 19. The apparatus as in claim 16, where parsing is performed at the session initiation protocol event server in cooperation with an ontology server.
 20. The apparatus as in claim 16, where the message body comprises at least one link to an ontology server to be used when parsing the semantic information.
 21. The apparatus as in claim 16, where parsing is performed at the session initiation protocol event server using a content indirection technique.
 22. The apparatus as in claim 16, where determining if the subscription can be granted comprises consulting at least one of a local source of resource data and a remote source of resource data and determining if appropriate resource data is available to grant the subscription.
 23. The apparatus as in claim 16, where the notification comprises a complete list of the resources including a resource or resources that have changed or comprises a partial list of the resources containing only the resource or resources that have changed.
 24. The apparatus as in claim 16, where resource data is comprised of at least some of presence data, watcherinfo, call state and application-specific events.
 25. An apparatus comprising: at least one processor; and at least one memory including computer program code, the at least one memory and the computer program code configured to, with the at least one processor, cause the apparatus to send a session initiation protocol subscribe message to a session initiation protocol event server from a user device, the session initiation protocol subscribe message comprising a resource query for a subscription to an event package comprised of a single event and comprising information for enabling the session initiation protocol event server to determine a list of resources that are a priori unknown at the user device that fulfill constraints of the resource query during a lifetime of the subscription, where the list of resources comprises a plurality of resources, where the session initiation protocol subscribe message comprises a message header specifying a resource query event identifier and a message body that comprises the resource query formulated in a query language, the resource query operating on resource data available at at least one of the session initiation protocol event server and through the session initiation protocol event server; receive the determined list of resources that fulfill constraints of the resource query at the user device as a start state of the subscription; and during the lifetime of the subscription, to receive a notification at the user device in response to a change occurring in the determined list of resources.
 26. The apparatus as in claim 25, where the message body comprises at least one link to an ontology server to be used when parsing the semantic information.
 27. The apparatus as in claim 25, where the notification comprises a complete list of the resources including a resource or resources that have changed or comprises a partial list of the resources containing only the resource or resources that have changed.
 28. The apparatus as in claim 25, where the user device is embodied as a mobile wireless telecommunications device.
 29. A non-transitory computer-readable storage medium carrying one or more sequences of one or more instructions which, when executed by one or more processors, cause an apparatus to at least perform the following steps: receiving a session initiation protocol subscribe message at a session initiation protocol event server from a user device, the session initiation protocol subscribe message being for a subscription to an event package comprised of a single event, where the session initiation protocol subscribe message comprises a message header specifying a resource query event identifier and a message body that comprises a resource query formulated in a query language, the resource query operating on resource data available at at least one of the session initiation protocol event server and through the session initiation protocol event server; determining if the subscription can be granted by parsing semantic information contained in the message body of the session initiation protocol subscribe message and, based on the parsed semantic information, determining using an aggregation of at least existing resource state information a list of resources that are a priori unknown at the user device and that fulfill constraints of the resource query during a lifetime of the subscription, where the list of resources that are a priori unknown at the user device comprises a plurality of resources; sending the determined list of resources that fulfill constraints of the resource query to the user device as a start state of the subscription; and during the lifetime of the subscription sending a notification to the user device in response to a change occurring in the determined list of resources.
 30. The non-transitory computer-readable storage medium as in claim 29, where it is determined that the subscription cannot be granted if the semantic information cannot be successfully parsed, if appropriate resource information cannot be obtained to respond to the resource query, or if the session initiation protocol event server cannot support the event package.
 31. The non-transitory computer-readable storage medium as in claim 29, where determining the list of resources is performed at the session initiation protocol event server in cooperation with an authorization policy management function to verify existence of access rights for the user terminal to the determined resources, and where parsing is performed at the session initiation protocol event server in cooperation with an ontology server.
 32. The non-transitory computer-readable storage medium as in claim 29, where the message body comprises at least one link to an ontology server to be used when parsing the semantic information.
 33. The non-transitory computer-readable storage medium as in claim 29, where parsing is performed at the session initiation protocol event server using a content indirection technique.
 34. The non-transitory computer-readable storage medium as in claim 29, where the notification comprises a complete list of the resources including a resource or resources that have changed or comprises a partial list of the resources containing only the resource or resources that have changed.
 35. The non-transitory computer-readable storage medium as in claim 29, where resource data is comprised of at least some of presence data, watcherinfo, call state and application-specific events.
 36. A non-transitory computer-readable storage medium carrying one or more sequences of one or more instructions which, when executed by one or more processors, cause an apparatus to at least perform the following steps: sending a session initiation protocol subscribe message to a session initiation protocol event server from a user device, the session initiation protocol subscribe message comprising a resource query for a subscription to an event package comprised of a single event and comprising information for enabling the session initiation protocol event server to determine a list of resources that are a priori unknown at the user device that fulfill constraints of the resource query during a lifetime of the subscription, where the list of resources comprises a plurality of resources, where the query comprises a message header specifying a resource query event identifier and a message body that comprises the resource query formulated in a query language, the resource query operating on resource data available at at least one of the session initiation protocol event server and through the session initiation protocol event server; receiving the determined list of resources that fulfill constraints of the resource query at the user device as a start state of the subscription; and during the lifetime of the subscription, receiving a notification at the user device in response to a change occurring in the determined list of resources.
 37. The non-transitory computer-readable storage medium as in claim 36, where the message body comprises at least one link to an ontology server to be used when parsing the semantic information.
 38. The non-transitory computer-readable storage medium as in claim 36, where the notification comprises a complete list of the resources including a resource or resources that have changed or comprises a partial list of the resources containing only the resource or resources that have changed.
 39. The non-transitory computer-readable storage medium as in claim 36, where the user device is embodied as a mobile wireless telecommunications device. 